500
|
How can I get the number of results after a filter is applied
![](images/exlistq500.png)
// Click event - Occurs when the user presses and then releases the left mouse button over the list control.
procedure TForm1.List1Click(ASender: TObject; );
begin
with List1 do
begin
ClearFilter();
end
end;
// FilterChange event - Occurs when filter was changed.
procedure TForm1.List1FilterChange(ASender: TObject; );
begin
with List1 do
begin
OutputDebugString( 'Items.MatchItemCount' );
OutputDebugString( Items.MatchItemCount );
OutputDebugString( FormatABC('value < 0 ? `filter applied: ` + abs(value + 1) + ` result(s)` : `no filter`',Items.MatchItemCount,Null,Null) );
end
end;
with List1 do
begin
BeginUpdate();
(IUnknown(Columns.Add('Item')) as EXLISTLib_TLB.Column).DisplayFilterButton := True;
with (IUnknown(Columns.Add('Pos')) as EXLISTLib_TLB.Column) do
begin
AllowSizing := False;
AllowSort := False;
Width := 32;
FormatColumn := '1 apos ``';
Position := 0;
end;
with Items do
begin
Add('Item A');
Add('Item B');
Add('Item C');
end;
FilterBarPromptVisible := EXLISTLib_TLB.exFilterBarPromptVisible;
FilterBarPromptPattern := 'Item';
EndUpdate();
end
|
499
|
How can I programmatically clear the control's filter
// Click event - Occurs when the user presses and then releases the left mouse button over the list control.
procedure TForm1.List1Click(ASender: TObject; );
begin
with List1 do
begin
ClearFilter();
end
end;
with List1 do
begin
BeginUpdate();
(IUnknown(Columns.Add('Item')) as EXLISTLib_TLB.Column).DisplayFilterButton := True;
with (IUnknown(Columns.Add('Pos')) as EXLISTLib_TLB.Column) do
begin
AllowSizing := False;
AllowSort := False;
Width := 32;
FormatColumn := '1 apos ``';
Position := 0;
end;
with Items do
begin
Add('Item A');
Add('Item B');
Add('Item C');
end;
FilterBarPromptVisible := EXLISTLib_TLB.exFilterBarPromptVisible;
FilterBarPromptPattern := 'B';
EndUpdate();
end
|
498
|
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt-combined)
![](images/exlistq498.png)
with List1 do
begin
BeginUpdate();
(IUnknown(Columns.Add('Item')) as EXLISTLib_TLB.Column).DisplayFilterButton := True;
with (IUnknown(Columns.Add('Pos')) as EXLISTLib_TLB.Column) do
begin
AllowSizing := False;
AllowSort := False;
Width := 32;
FormatColumn := '1 apos ``';
Position := 0;
end;
with Items do
begin
Add('Item A');
Add('Item B');
Add('Item C');
end;
FilterBarPromptPattern := 'B';
FilterBarPromptVisible := Integer(EXLISTLib_TLB.exFilterBarVisible) Or Integer(EXLISTLib_TLB.exFilterBarPromptVisible);
with Columns.Item[OleVariant(0)] do
begin
FilterType := EXLISTLib_TLB.exFilter;
Filter := 'Item B';
end;
ApplyFilter();
EndUpdate();
end
|
497
|
Is it possible to prevent closing the control's filter bar, so it is always shown (prompt)
![](images/exlistq497.png)
with List1 do
begin
BeginUpdate();
(IUnknown(Columns.Add('Item')) as EXLISTLib_TLB.Column).DisplayFilterButton := True;
with (IUnknown(Columns.Add('Pos')) as EXLISTLib_TLB.Column) do
begin
AllowSizing := False;
AllowSort := False;
Width := 32;
FormatColumn := '1 apos ``';
Position := 0;
end;
with Items do
begin
Add('Item A');
Add('Item B');
Add('Item C');
end;
FilterBarPromptVisible := EXLISTLib_TLB.exFilterBarPromptVisible;
FilterBarPromptPattern := 'B';
EndUpdate();
end
|
496
|
Is it possible to prevent closing the control's filter bar, so it is always shown
![](images/exlistq496.png)
with List1 do
begin
BeginUpdate();
(IUnknown(Columns.Add('Item')) as EXLISTLib_TLB.Column).DisplayFilterButton := True;
with (IUnknown(Columns.Add('Pos')) as EXLISTLib_TLB.Column) do
begin
AllowSizing := False;
AllowSort := False;
Width := 32;
FormatColumn := '1 apos ``';
Position := 0;
end;
with Items do
begin
Add('Item A');
Add('Item B');
Add('Item C');
end;
FilterBarCaption := 'len(value) = 0 ? `<fgcolor=808080>no filter` : value';
FilterBarPromptVisible := EXLISTLib_TLB.exFilterBarVisible;
with Columns.Item[OleVariant(0)] do
begin
FilterType := EXLISTLib_TLB.exFilter;
Filter := 'Item B';
end;
ApplyFilter();
EndUpdate();
end
|
495
|
How can I find if the control is running in DPI mode
with List1 do
begin
OutputDebugString( FormatABC('dpi = 1 ? `normal/stretch mode` : `dpi mode`',Null,Null,Null) );
end
|
494
|
I am using single selection, the question is if possible to select an item only when the user releases the mouse, as currently it selects the item as soon as the user clicks it
// SelectionChanged event - Fired after a new item is selected.
procedure TForm1.List1SelectionChanged(ASender: TObject; );
begin
with List1 do
begin
OutputDebugString( 'SelectionChanged' );
end
end;
with List1 do
begin
BeginUpdate();
FreezeEvents(True);
SingleSel := True;
SelectOnRelease := True;
(IUnknown(Columns.Add('Column')) as EXLISTLib_TLB.Column).FormatColumn := '1 apos `A-Z`';
with Items do
begin
Add('');
SelectItem[Add('')] := True;
Add('');
end;
FreezeEvents(False);
EndUpdate();
end
|
493
|
Is it possible to select nothing
// SelectionChanged event - Fired after a new item is selected.
procedure TForm1.List1SelectionChanged(ASender: TObject; );
begin
with List1 do
begin
OutputDebugString( 'SelectionChanged' );
end
end;
with List1 do
begin
BeginUpdate();
FreezeEvents(True);
AllowSelectNothing := True;
(IUnknown(Columns.Add('Column')) as EXLISTLib_TLB.Column).FormatColumn := '1 apos `A-Z`';
with Items do
begin
Add('');
SelectItem[Add('')] := True;
Add('');
end;
FreezeEvents(False);
EndUpdate();
end
|
492
|
How do I change the drop down filter icon/button (black)
![](images/exlistq492.png)
with List1 do
begin
BeginUpdate();
with VisualAppearance do
begin
Add(1,'gBFLBCJwBAEHhEJAAEhABXUIQAAYAQGKIcBiAKBQAGYBIJDEMgzDDAUBjKKocQTC4AIQjCK4JDKHYJRpHEZyCA8EhqGASRAFUQBYiWE4oSpLABQaK0ZwIGyRIrkGQgQg' +
'mPYDSDNU4zVIEEglBI0TDNczhNDENgtGYaJqHIYpZBcM40TKkEZoSIITZcRrOEBiRL1S0RBhGcRUHZlWzdN64LhuK47UrWdD/XhdVzXRbjfz1Oq+bxve48Br7A5yYThd' +
'r4LhOFQ3RjIL4xbIcUwGe6VZhjOLZXjmO49T69HTtOCYBEBA');
end;
Background[EXLISTLib_TLB.exCursorHoverColumn] := $ffffffff;
Background[EXLISTLib_TLB.exHeaderFilterBarButton] := $1000000;
Background[EXLISTLib_TLB.exBackColorFilter] := $10000;
Background[EXLISTLib_TLB.exForeColorFilter] := $ffffff;
Description[EXLISTLib_TLB.exFilterBarExclude] := '<bgcolor 0><fgcolor ffffff> Exclude </fgcolor></bgcolor>';
HeaderAppearance := EXLISTLib_TLB.None2;
BackColorHeader := RGB(0,0,0);
ForeColorHeader := RGB(255,255,255);
HeaderVisible := True;
BackColorLevelHeader := BackColor;
with (IUnknown(Columns.Add('Filter')) as EXLISTLib_TLB.Column) do
begin
FilterList := Integer(EXLISTLib_TLB.exShowExclude) Or Integer(EXLISTLib_TLB.exShowCheckBox);
DisplayFilterButton := True;
AllowSort := False;
AllowDragging := False;
end;
with Items do
begin
Add('One');
Add('Two');
Add('Three');
end;
EndUpdate();
end
|
491
|
How do I change the drop down filter icon/button (white)
![](images/exlistq491.png)
with List1 do
begin
BeginUpdate();
with VisualAppearance do
begin
Add(2,'gBFLBCJwBAEHhEJAAEhABX8GACAADACAxSDEMQBQKAAzQFAYbhgHCGAAGQaBUgmFgAQhFcZQSKUOQTDKNYykCIRSDUJYkSZEIyjBI8ExXFqNACkGKwYgmNYiTLAcgANJ' +
'0WBaGIZJ4gOT5fDKMoEDRRYADFCscwxJybQAqGQKKb+VgAVY/cTyBIAEQSKA0TDOQ5TSKWB4JPZQRBEbZMNBtBIUJquKaqShdQJCU5FdY3Xblez9P7AMBwLFEC4NQ8YN' +
'YuPhjR4dRTIMhvVAsUArFh8Zg9GZZFjmDIDT4ydBLTQwcyVIKnP5qOa6XbmPoCQDYKxZHYxPzVDa3axuL76dqCAT7XrXNy1TbNRrzQKfcJqfCbdw2YaDZLOOT3fjuI4h' +
'hKaRzFAHJ+jYQ4xHuY4gHuGIXGeExqC8Tp6C+PoEm+G5ImycRgh0XwvDGa5rgOeoejyXwnFeQp2mkf5ClgBB9gCWIYAwfYAEKV58mkdwOggNArgOXY2EWLoDkKOA0mgb' +
'hOGgZApgaSBIHWSYHSmbApgYThmESZYJkIeIkgeCpfliLIHgpMIcmUYYYmODAlg2SI4mWfRfGOEguDcCRjFYAJihCQhJBSDoRmONgKEcI4kFCEJhhOVYTmYnAlEAQhWB' +
'MJYJGYWoWmWSR2F6F5lnkWAQhUAgpEieRWEuSYkjWGpmkmNhuhuZwJkYcocmaaYkjyEhngnUA6lEFAlAEgI=');
Add(1,'CP:2 -14 -4 -2 4');
end;
Background[EXLISTLib_TLB.exHeaderFilterBarButton] := $1000000;
Background[EXLISTLib_TLB.exCursorHoverColumn] := BackColor;
HeaderAppearance := EXLISTLib_TLB.None2;
BackColorHeader := RGB(255,255,255);
HeaderVisible := True;
HeaderHeight := 24;
BackColorLevelHeader := BackColor;
with (IUnknown(Columns.Add('Filter')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
AllowSort := False;
AllowDragging := False;
end;
EndUpdate();
end
|
490
|
Can I display the column's multiple-lines caption vertically oriented (method 2)
![](images/exlistq490.png)
with List1 do
begin
BeginUpdate();
HeaderHeight := 48;
ColumnAutoResize := True;
with Columns do
begin
Add('And others ...');
with (IUnknown(Add('')) as EXLISTLib_TLB.Column) do
begin
HTMLCaption := 'First Column';
HeaderVertical := True;
Width := 36;
AllowSizing := False;
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(8);
Position := 0;
end;
with (IUnknown(Add('')) as EXLISTLib_TLB.Column) do
begin
HTMLCaption := '<c><b>Second Column';
HeaderVertical := True;
Width := 36;
AllowSizing := False;
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(8);
Position := 1;
end;
with (IUnknown(Add('')) as EXLISTLib_TLB.Column) do
begin
HTMLCaption := '<r>Third Column';
HeaderVertical := True;
Width := 36;
AllowSizing := False;
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(8);
Position := 2;
end;
end;
with Items do
begin
CellState[Add('Item 1'),OleVariant(3)] := 1;
CellState[Add('Item 2'),OleVariant(2)] := 1;
CellState[Add('Item 3'),OleVariant(1)] := 1;
end;
EndUpdate();
end
|
489
|
Can I display the column's multiple-lines caption vertically oriented (method 1)
![](images/exlistq489.png)
with List1 do
begin
BeginUpdate();
HeaderHeight := 48;
HeaderSingleLine := False;
ColumnAutoResize := True;
with Columns do
begin
Add('And others ...');
with (IUnknown(Add('First Column')) as EXLISTLib_TLB.Column) do
begin
HeaderVertical := True;
Width := 36;
AllowSizing := False;
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(8);
Position := 0;
end;
with (IUnknown(Add('Second Column')) as EXLISTLib_TLB.Column) do
begin
HeaderBold := True;
HeaderVertical := True;
Width := 36;
AllowSizing := False;
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(8);
Position := 1;
end;
with (IUnknown(Add('Third Column')) as EXLISTLib_TLB.Column) do
begin
HeaderVertical := True;
Width := 36;
AllowSizing := False;
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(8);
Position := 2;
end;
end;
with Items do
begin
CellState[Add('Item 1'),OleVariant(3)] := 1;
CellState[Add('Item 2'),OleVariant(2)] := 1;
CellState[Add('Item 3'),OleVariant(1)] := 1;
end;
EndUpdate();
end
|
488
|
Can I display the column's caption vertically oriented (method 2)
![](images/exlistq488.png)
with List1 do
begin
BeginUpdate();
HeaderHeight := 48;
ColumnAutoResize := True;
with Columns do
begin
Add('And others ...');
with (IUnknown(Add('')) as EXLISTLib_TLB.Column) do
begin
HTMLCaption := 'First';
HeaderVertical := True;
Width := 20;
AllowSizing := False;
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Position := 0;
end;
with (IUnknown(Add('')) as EXLISTLib_TLB.Column) do
begin
HTMLCaption := '<c><b>Second';
HeaderVertical := True;
Width := 20;
AllowSizing := False;
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Position := 1;
end;
with (IUnknown(Add('')) as EXLISTLib_TLB.Column) do
begin
HTMLCaption := '<r>Third';
HeaderVertical := True;
Width := 20;
AllowSizing := False;
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Position := 2;
end;
end;
with Items do
begin
CellState[Add('Item 1'),OleVariant(3)] := 1;
CellState[Add('Item 2'),OleVariant(2)] := 1;
CellState[Add('Item 3'),OleVariant(1)] := 1;
end;
EndUpdate();
end
|
487
|
Can I display the column's caption vertically oriented (method 1)
![](images/exlistq487.png)
with List1 do
begin
BeginUpdate();
HeaderHeight := 48;
ColumnAutoResize := True;
with Columns do
begin
Add('And others ...');
with (IUnknown(Add('First')) as EXLISTLib_TLB.Column) do
begin
HeaderVertical := True;
Width := 20;
AllowSizing := False;
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Position := 0;
end;
with (IUnknown(Add('Second')) as EXLISTLib_TLB.Column) do
begin
HeaderBold := True;
HeaderVertical := True;
Width := 20;
AllowSizing := False;
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Position := 1;
end;
with (IUnknown(Add('Third')) as EXLISTLib_TLB.Column) do
begin
HeaderVertical := True;
Width := 20;
AllowSizing := False;
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Position := 2;
end;
end;
with Items do
begin
CellState[Add('Item 1'),OleVariant(3)] := 1;
CellState[Add('Item 2'),OleVariant(2)] := 1;
CellState[Add('Item 3'),OleVariant(1)] := 1;
end;
EndUpdate();
end
|
486
|
How do I get sorted the column as string, numeric, date, date and time. Also how can it be applied to drop down filter panel
![](images/exlistq486.png)
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Date')) as EXLISTLib_TLB.Column) do
begin
SortType := EXLISTLib_TLB.SortDate;
DisplayFilterButton := True;
DisplayFilterPattern := False;
DisplayFilterDate := True;
FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox) Or Integer(EXLISTLib_TLB.exSortItemsDesc);
end;
with (IUnknown(Columns.Add('DateTime')) as EXLISTLib_TLB.Column) do
begin
SortType := EXLISTLib_TLB.SortDateTime;
DisplayFilterButton := True;
DisplayFilterPattern := False;
FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox) Or Integer(EXLISTLib_TLB.exSortItemsDesc);
end;
with (IUnknown(Columns.Add('Time')) as EXLISTLib_TLB.Column) do
begin
SortType := EXLISTLib_TLB.SortTime;
DisplayFilterButton := True;
DisplayFilterPattern := False;
FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox) Or Integer(EXLISTLib_TLB.exSortItemsDesc);
FormatColumn := 'time(value)';
end;
with (IUnknown(Columns.Add('Numeric')) as EXLISTLib_TLB.Column) do
begin
SortType := EXLISTLib_TLB.SortNumeric;
DisplayFilterButton := True;
FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox) Or Integer(EXLISTLib_TLB.exSortItemsDesc);
end;
with (IUnknown(Columns.Add('String')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox) Or Integer(EXLISTLib_TLB.exSortItemsDesc);
end;
with Items do
begin
h := Add('1/27/2010');
Caption[h,OleVariant(1)] := '1/27/2010 10:00:00 AM';
Caption[h,OleVariant(2)] := Caption[h,OleVariant(1)];
Caption[h,OleVariant(3)] := OleVariant(1);
Caption[h,OleVariant(4)] := Caption[h,OleVariant(3)];
h := Add('1/27/2011');
Caption[h,OleVariant(1)] := '1/27/2011 9:00:00 AM';
Caption[h,OleVariant(2)] := Caption[h,OleVariant(1)];
Caption[h,OleVariant(3)] := OleVariant(11);
Caption[h,OleVariant(4)] := Caption[h,OleVariant(3)];
h := Add('11/2/2010');
Caption[h,OleVariant(1)] := '11/2/2010 9:00:00 AM';
Caption[h,OleVariant(2)] := Caption[h,OleVariant(1)];
Caption[h,OleVariant(3)] := OleVariant(2);
Caption[h,OleVariant(4)] := Caption[h,OleVariant(3)];
end;
Columns.Item['DateTime'].DisplayFilterDate := False;
EndUpdate();
end
|
485
|
How can I get ride / hide the image being dragged by OLE Drag and Drop
// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.List1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
// Data.SetData("data to drag")
with List1 do
begin
AllowedEffects := 1;
end
end;
with List1 do
begin
OLEDropMode := EXLISTLib_TLB.exOLEDropManual;
Background[EXLISTLib_TLB.exDragDropAfter] := $ffffff;
Columns.Add('Default');
with Items do
begin
Add('Item 1');
Add('Item 2');
Add('Item 3');
end;
end
|
484
|
Is there an event that fires on the exList control when the order of items in the list is changed via dragging
// AllowAutoDrag event - Occurs when the user drags the item between InsertA and InsertB.
procedure TForm1.List1AllowAutoDrag(ASender: TObject; Item : Integer;InsertA : Integer;InsertB : Integer;var Cancel : WordBool);
begin
with List1 do
begin
with Items do
begin
OutputDebugString( 'After' );
OutputDebugString( Caption[InsertA,OleVariant(0)] );
OutputDebugString( 'Before' );
OutputDebugString( Caption[InsertB,OleVariant(0)] );
end;
Cancel := True;
end
end;
with List1 do
begin
BeginUpdate();
AutoDrag := EXLISTLib_TLB.exAutoDragPosition;
Columns.Add('Task');
with Items do
begin
Add('Item 1');
Add('Item 2');
Add('Item 3');
Add('Item 4');
end;
EndUpdate();
end
|
483
|
How can I export checked items only
![](images/exlistq483.png)
with List1 do
begin
BeginUpdate();
with Columns do
begin
(IUnknown(Add('C1')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
(IUnknown(Add('C2')) as EXLISTLib_TLB.Column).FormatColumn := '1 index `A-Z`';
(IUnknown(Add('C3')) as EXLISTLib_TLB.Column).FormatColumn := '100 index ``';
end;
with Items do
begin
Add('Item 1');
CellState[Add('Item 2'),OleVariant(0)] := 1;
CellState[Add('Item 3'),OleVariant(0)] := 1;
end;
EndUpdate();
OutputDebugString( 'Export CSV Checked Items Only:' );
OutputDebugString( Export('','chk') );
end
|
482
|
How can I export a hidden column
![](images/exlistq482.png)
with List1 do
begin
BeginUpdate();
with Columns do
begin
Add('C1');
with (IUnknown(Add('C2')) as EXLISTLib_TLB.Column) do
begin
FormatColumn := '1 index `A-Z`';
Visible := False;
end;
with (IUnknown(Add('C3')) as EXLISTLib_TLB.Column) do
begin
FormatColumn := '100 index ``';
Visible := False;
end;
end;
with Items do
begin
Add('Item 1');
Add('Item 2');
Add('Item 3');
end;
EndUpdate();
OutputDebugString( 'Export CSV Hidden Columns (1,2):' );
OutputDebugString( Export('','|1,2') );
end
|
481
|
Is it possible to have a different alignment for parts of the cell's caption
![](images/exlistq481.png)
with List1 do
begin
BeginUpdate();
DrawGridLines := EXLISTLib_TLB.exAllLines;
with (IUnknown(Columns.Add('Default')) as EXLISTLib_TLB.Column) do
begin
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
end;
with Items do
begin
CellHAlignment[Add('all-left'),OleVariant(0)] := EXLISTLib_TLB.LeftAlignment;
CellHAlignment[Add('all-center'),OleVariant(0)] := EXLISTLib_TLB.CenterAlignment;
CellHAlignment[Add('all-right'),OleVariant(0)] := EXLISTLib_TLB.RightAlignment;
h := Add('left<c>center<r>right');
CaptionFormat[h,OleVariant(0)] := EXLISTLib_TLB.exHTML;
end;
EndUpdate();
end
|
480
|
I have a column with Def(exCellSingleLine) property on False, word-wrapping, and I am wondering if possible to update the column's content while user is resizing it
with List1 do
begin
BeginUpdate();
with Columns do
begin
with (IUnknown(Add('MultipleLine')) as EXLISTLib_TLB.Column) do
begin
Width := 32;
Def[EXLISTLib_TLB.exCellSingleLine] := OleVariant(False);
Def[EXLISTLib_TLB.exColumnResizeContiguously] := OleVariant(True);
end;
with (IUnknown(Add('SingleLine')) as EXLISTLib_TLB.Column) do
begin
Def[EXLISTLib_TLB.exCellSingleLine] := OleVariant(False);
end;
end;
with Items do
begin
Caption[Add('This is a bit of long text that should break the line'),OleVariant(1)] := 'This is a bit of long text that should break the line';
end;
EndUpdate();
end
|
479
|
How can I hide the cell's tooltip
// ToolTip event - Fired when the control prepares the object's tooltip.
procedure TForm1.List1ToolTip(ASender: TObject; ItemIndex : Integer;ColIndex : Integer;var Visible : WordBool;var X : Integer;var Y : Integer;CX : Integer;CY : Integer);
begin
with List1 do
begin
OutputDebugString( 'The tooltip is about to be shown' );
Visible := False;
end
end;
with List1 do
begin
BeginUpdate();
Columns.Add('Def');
with Items do
begin
CellToolTip[Add('Item 1'),OleVariant(0)] := 'This is a bit of text that''s shown when cursor hovers the item.';
CellToolTip[Add('Item 2'),OleVariant(0)] := 'This is a bit of text that''s shown when cursor hovers the item.';
CellToolTip[Add('Item 3'),OleVariant(0)] := 'This is a bit of text that''s shown when cursor hovers the item.';
end;
EndUpdate();
end
|
478
|
How can I find out if an item is selected or unselected
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.List1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
with List1 do
begin
i := ItemFromPoint[-1,-1,c,hit];
with Items do
begin
OutputDebugString( SelectItem[i] );
end;
end
end;
with List1 do
begin
Columns.Add('Header');
with Items do
begin
Add('Item 1');
SelectItem[Add('Item 2')] := True;
Add('Item 3');
end;
end
|
477
|
How do I sort the index column as numeric
![](images/exlistq477.png)
// AddItem event - Occurs after a new Item is inserted to Items collection.
procedure TForm1.List1AddItem(ASender: TObject; Item : Integer);
begin
with List1 do
begin
with Items do
begin
CellData[Item,OleVariant(1)] := OleVariant(Item);
end;
end
end;
with List1 do
begin
BeginUpdate();
DrawGridLines := EXLISTLib_TLB.exAllLines;
ColumnAutoResize := True;
ShowFocusRect := False;
with (IUnknown(Columns.Add('Next')) as EXLISTLib_TLB.Column) do
begin
Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(4);
Def[EXLISTLib_TLB.exHeaderPaddingLeft] := OleVariant(4);
end;
with (IUnknown(Columns.Add('Index')) as EXLISTLib_TLB.Column) do
begin
AllowSizing := False;
Width := 48;
FormatColumn := '(((0 := (1 index ``)) mod 3) case ( default: ``; 0 : `<r><fgcolor=B0B0B0>`; 1: ``; 2 : `<c><fgcolor=808080>` )) + str(=:0)';
Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
SortType := EXLISTLib_TLB.SortUserData;
Position := 0;
end;
with Items do
begin
Add('Item 1');
Add('Item 2');
Add('Item 3');
Add('Item 4');
Add('Item 5');
Add('Item 6');
Add('Item 7');
Add('Item 8');
Add('Item 9');
Add('Item 10');
end;
EndUpdate();
end
|
476
|
How can I put icons/images into buttons
![](images/exlistq476.png)
with List1 do
begin
BeginUpdate();
ColumnAutoResize := True;
Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' +
'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' +
'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' +
'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
with (IUnknown(Columns.Add('C+B')) as EXLISTLib_TLB.Column) do
begin
AllowSizing := False;
Width := 48;
FormatColumn := '` <img>` + ( 1 + (1 index ``) mod 3 ) + `</img> `';
Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Def[EXLISTLib_TLB.exCellHasButton] := OleVariant(True);
Def[Integer(EXLISTLib_TLB.exCellHasButton) Or Integer(EXLISTLib_TLB.exCellHasRadioButton)] := OleVariant(True);
end;
Columns.Add('');
DrawGridLines := EXLISTLib_TLB.exVLines;
DefaultItemHeight := 20;
with Items do
begin
Add('');
Add('');
Add('');
Add('');
Add('');
Add('');
Add('');
Add('');
end;
EndUpdate();
end
|
475
|
Is it possible to have a CheckBox and Button TOGETHER on all cells in a column
![](images/exlistq475.png)
// CellButtonClick event - Fired after the user clicks the cell's button.
procedure TForm1.List1CellButtonClick(ASender: TObject; Item : Integer;ColIndex : Integer);
begin
with List1 do
begin
OutputDebugString( 'CellButtonClick' );
OutputDebugString( Item );
end
end;
// CellStateChanged event - Fired after cell's state is changed.
procedure TForm1.List1CellStateChanged(ASender: TObject; Item : Integer;ColIndex : Integer);
begin
with List1 do
begin
OutputDebugString( 'CellStateChanged' );
OutputDebugString( Item );
end
end;
with List1 do
begin
BeginUpdate();
ColumnAutoResize := True;
with (IUnknown(Columns.Add('')) as EXLISTLib_TLB.Column) do
begin
AllowSizing := False;
Width := 32;
FormatColumn := '1 index ``';
end;
with (IUnknown(Columns.Add('Def')) as EXLISTLib_TLB.Column) do
begin
AllowSizing := False;
Width := 48;
FormatColumn := '` `';
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Def[EXLISTLib_TLB.exCellHasButton] := OleVariant(True);
Def[Integer(EXLISTLib_TLB.exCellHasButton) Or Integer(EXLISTLib_TLB.exCellHasRadioButton)] := OleVariant(True);
end;
Columns.Add('');
with Items do
begin
Add('');
Add('');
Add('');
Add('');
Add('');
Add('');
Add('');
Add('');
end;
EndUpdate();
end
|
474
|
Does filtering work with umlauts / accents characters
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Names')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
FilterType := EXLISTLib_TLB.exPattern;
end;
with Items do
begin
Add('Mantel');
Add('Mechanik');
Add('Motor');
Add('Murks');
Add('Märchen');
Add('Möhren');
Add('Mühle');
Add('Sérigraphie');
end;
Columns.Item[OleVariant(0)].Filter := '*ä*';
ApplyFilter();
EndUpdate();
end
|
473
|
Can I set the search box / filterbarprompt to invisible, so I can use my own input and *string* via VBA
with List1 do
begin
BeginUpdate();
ColumnAutoResize := True;
ContinueColumnScroll := False;
MarkSearchColumn := False;
SearchColumnIndex := 1;
FilterBarHeight := 0;
FilterBarPromptVisible := True;
with Columns do
begin
(IUnknown(Add('Name')) as EXLISTLib_TLB.Column).Width := 96;
(IUnknown(Add('Title')) as EXLISTLib_TLB.Column).Width := 96;
Add('City');
end;
with Items do
begin
h0 := Add('Nancy Davolio');
Caption[h0,OleVariant(1)] := 'Sales Representative';
Caption[h0,OleVariant(2)] := 'Seattle';
h0 := Add('Andrew Fuller');
Caption[h0,OleVariant(1)] := 'Vice President, Sales';
Caption[h0,OleVariant(2)] := 'Tacoma';
SelectItem[h0] := True;
h0 := Add('Janet Leverling');
Caption[h0,OleVariant(1)] := 'Sales Representative';
Caption[h0,OleVariant(2)] := 'Kirkland';
h0 := Add('Margaret Peacock');
Caption[h0,OleVariant(1)] := 'Sales Representative';
Caption[h0,OleVariant(2)] := 'Redmond';
h0 := Add('Steven Buchanan');
Caption[h0,OleVariant(1)] := 'Sales Manager';
Caption[h0,OleVariant(2)] := 'London';
h0 := Add('Michael Suyama');
Caption[h0,OleVariant(1)] := 'Sales Representative';
Caption[h0,OleVariant(2)] := 'London';
h0 := Add('Robert King');
Caption[h0,OleVariant(1)] := 'Sales Representative';
Caption[h0,OleVariant(2)] := 'London';
h0 := Add('Laura Callahan');
Caption[h0,OleVariant(1)] := 'Inside Sales Coordinator';
Caption[h0,OleVariant(2)] := 'Seattle';
h0 := Add('Anne Dodsworth');
Caption[h0,OleVariant(1)] := 'Sales Representative';
Caption[h0,OleVariant(2)] := 'London';
end;
FilterBarPromptPattern := 'London';
EndUpdate();
end
|
472
|
How can I align captions of items with checkbox, with items with no checkbox
![](images/exlistq472.png)
with List1 do
begin
BeginUpdate();
Columns.Add('Default');
with Items do
begin
CellImages[Add(OleVariant(0)),OleVariant(0)] := '1';
CellHasCheckBox[Add(OleVariant(1)),OleVariant(0)] := True;
CellImages[Add(OleVariant(2)),OleVariant(0)] := '1';
end;
EndUpdate();
end
|
471
|
How do I programmatically scroll the control (method 2)
with List1 do
begin
BeginUpdate();
ColumnAutoResize := False;
ContinueColumnScroll := False;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
Layout := 'vscroll = 10';
EndUpdate();
end
|
470
|
How do I programmatically scroll the control (method 1)
with List1 do
begin
BeginUpdate();
ColumnAutoResize := False;
ContinueColumnScroll := False;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
ScrollPos[True] := 10;
EndUpdate();
end
|
469
|
How can I decode the Layout property
with List1 do
begin
BeginUpdate();
with Columns do
begin
Add('C1');
(IUnknown(Add('C2')) as EXLISTLib_TLB.Column).Position := 1;
end;
with Items do
begin
Caption[Add('SubItem 1.1'),OleVariant(1)] := 'SubItem 1.2';
Caption[Add('SubItem 2.1'),OleVariant(1)] := 'SubItem 2.2';
end;
Columns.Item['C2'].SortOrder := EXLISTLib_TLB.SortDescending;
EndUpdate();
OutputDebugString( 'Encoded:' );
OutputDebugString( Layout );
with (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('Exontrol.Print'))) as EXPRINTLib_TLB.Print) do
begin
OutputDebugString( 'Decoded: ' );
OutputDebugString( Decode64TextW[List1.Layout] );
end;
end
|
468
|
Does the title of the cell's tooltip supports HTML format
![](images/exlistq468.png)
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('')) as EXLISTLib_TLB.Column) do
begin
Caption := '';
HTMLCaption := 'Column';
end;
with Items do
begin
h := Add('tooltip w/h different title');
CellToolTip[h,OleVariant(0)] := '<c><b><fgcolor=FF0000>Title</fgcolor></b><br>This is bit of text that''s shown when the user hovers the cell. This shows the titl' +
'e centered with a different color.';
end;
EndUpdate();
end
|
467
|
How do I specify a different title for the cell's tooltip
![](images/exlistq467.png)
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('')) as EXLISTLib_TLB.Column) do
begin
Caption := 'This is the title';
HTMLCaption := 'Column';
end;
with Items do
begin
h := Add('tooltip w/h different title');
CellToolTip[h,OleVariant(0)] := 'This is bit of text that''s shown when the user hovers the cell.';
end;
EndUpdate();
end
|
466
|
The cell's tooltip displays the column's caption in its title. How can I get ride of that
![](images/exlistq466.png)
with List1 do
begin
BeginUpdate();
with Columns do
begin
Add('C1');
Add('C2');
end;
with Items do
begin
h := Add('tooltip w/h caption');
CellToolTip[h,OleVariant(0)] := 'This is bit of text that''s shown when the user hovers the cell. This shows the column''s caption in the title.';
Caption[h,OleVariant(1)] := 'tooltip no caption';
CellToolTip[h,OleVariant(1)] := 'This is bit of text that''s shown when the user hovers the cell. This shows no column''s caption in the title.';
end;
with Columns.Item['C2'] do
begin
HTMLCaption := Caption;
Caption := '';
end;
EndUpdate();
end
|
465
|
When you click the cell it takes some time before the edit box appears, can this delay be removed
![](images/exlistq465.png)
// Click event - Occurs when the user presses and then releases the left mouse button over the list control.
procedure TForm1.List1Click(ASender: TObject; );
begin
with List1 do
begin
h := ItemFromPoint[-1,-1,ColIndex,HitTestInfo];
Items.Edit(h,OleVariant(ColIndex));
end
end;
with List1 do
begin
AllowEdit := True;
Columns.Add('Default');
with Items do
begin
Add('');
Add('Edit');
Add('');
end;
end
|
464
|
How can I programmatically show the column's filter
![](images/exlistq464.png)
// RClick event - Fired when right mouse button is clicked
procedure TForm1.List1RClick(ASender: TObject; );
begin
with List1 do
begin
i := ItemFromPoint[-1,-1,c,hit];
Columns.Item[OleVariant(c)].ShowFilter('-1,-1,128,128');
end
end;
with List1 do
begin
BeginUpdate();
ShowFocusRect := False;
with (IUnknown(Columns.Add('Items ')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterPattern := False;
FilterList := Integer(EXLISTLib_TLB.exShowExclude) Or Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox);
end;
with Items do
begin
Add('Item 1');
Add('Item 2');
Add('Item 3');
end;
EndUpdate();
end
|
463
|
I want to be able to click on one of the headers, and sort by other column. How can I do that
![](images/exlistq463.png)
// ColumnClick event - Fired after the user clicks on column's header.
procedure TForm1.List1ColumnClick(ASender: TObject; Column : IColumn);
begin
// Column.SortOrder = 1
with List1 do
begin
SortOnClick := EXLISTLib_TLB.exDefaultSort;
Columns.Item['Sort'].SortOrder := EXLISTLib_TLB.SortAscending;
SortOnClick := EXLISTLib_TLB.exUserSort;
end
end;
with List1 do
begin
BeginUpdate();
SortOnClick := EXLISTLib_TLB.exUserSort;
Columns.Add('Items');
(IUnknown(Columns.Add('Sort')) as EXLISTLib_TLB.Column).Visible := False;
with Items do
begin
Caption[Add('Item 1 (3)'),OleVariant(1)] := OleVariant(3);
Caption[Add('Item 2 (1)'),OleVariant(1)] := OleVariant(1);
Caption[Add('Item 3 (2)'),OleVariant(1)] := OleVariant(2);
end;
EndUpdate();
end
|
462
|
How can I sort by two-columns, one by date and one by time
![](images/exlistq462.png)
with List1 do
begin
BeginUpdate();
SingleSort := False;
with Columns do
begin
(IUnknown(Add('Index')) as EXLISTLib_TLB.Column).FormatColumn := '1 index ``';
(IUnknown(Add('Date')) as EXLISTLib_TLB.Column).SortType := EXLISTLib_TLB.SortDate;
with (IUnknown(Add('Time')) as EXLISTLib_TLB.Column) do
begin
SortType := EXLISTLib_TLB.SortTime;
FormatColumn := 'time(value)';
end;
end;
with Items do
begin
h := Add(OleVariant(0));
Caption[h,OleVariant(1)] := '1/1/2001';
Caption[h,OleVariant(2)] := '1/1/2001 10:00:00 AM';
h := Add(OleVariant(0));
Caption[h,OleVariant(1)] := '12/31/2000';
Caption[h,OleVariant(2)] := '1/1/2001 10:00:00 AM';
h := Add(OleVariant(0));
Caption[h,OleVariant(1)] := '1/1/2001';
Caption[h,OleVariant(2)] := '1/1/2001 6:00:00 AM';
h := Add(OleVariant(0));
Caption[h,OleVariant(1)] := '12/31/2000';
Caption[h,OleVariant(2)] := '1/1/2001 8:00:00 AM';
h := Add(OleVariant(0));
Caption[h,OleVariant(1)] := '1/1/2001';
Caption[h,OleVariant(2)] := '1/1/2001 8:00:00 AM';
h := Add(OleVariant(0));
Caption[h,OleVariant(1)] := '12/31/2000';
Caption[h,OleVariant(2)] := '1/1/2001 6:00:00 AM';
end;
Layout := 'multiplesort="C1:1 C2:1"';
EndUpdate();
end
|
461
|
How can I connect to a DBF file
with List1 do
begin
BeginUpdate();
ColumnAutoResize := False;
ContinueColumnScroll := False;
MarkSearchColumn := False;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADODB.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Select * From foxcode.DBF','Provider=vfpoledb;Data Source=C:\Program Files\Microsoft Visual FoxPro 9\',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
EndUpdate();
end
|
460
|
Does your control supports scrolling by touching the screen
![](images/exlistq460.png)
with List1 do
begin
ColumnAutoResize := False;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
ContinueColumnScroll := True;
ScrollBySingleLine := True;
AutoDrag := Integer(EXLISTLib_TLB.exAutoDragScrollOnShortTouch) Or Integer(EXLISTLib_TLB.exAutoDragScroll);
end
|
459
|
How can I enlarge the size of the control's scroll bars, for using on touch screens
![](images/exlistq459.png)
with List1 do
begin
ScrollBars := EXLISTLib_TLB.DisableBoth;
ScrollWidth := 32;
ScrollHeight := 32;
ScrollButtonHeight := 32;
ScrollButtonWidth := 32;
end
|
458
|
Is there a syntax for conditional formatting of items, based on CellState/CellStateChange
![](images/exlistq458.png)
// CellStateChanged event - Fired after cell's state is changed.
procedure TForm1.List1CellStateChanged(ASender: TObject; Item : Integer;ColIndex : Integer);
begin
with List1 do
begin
with Items do
begin
Caption[Item,OleVariant(2)] := OleVariant(CellState[Item,OleVariant(0)]);
end;
end
end;
with List1 do
begin
BeginUpdate();
ShowFocusRect := False;
MarkSearchColumn := False;
SelBackMode := EXLISTLib_TLB.exTransparent;
var_ConditionalFormat := ConditionalFormats.Add('%2 != 0',Null);
with var_ConditionalFormat do
begin
Bold := True;
ForeColor := $ff;
ApplyTo := EXLISTLib_TLB.exFormatToItems;
end;
with (IUnknown(Columns.Add('')) as EXLISTLib_TLB.Column) do
begin
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Width := 16;
AllowSizing := False;
end;
Columns.Add('Information');
(IUnknown(Columns.Add('Hidden')) as EXLISTLib_TLB.Column).Visible := False;
with Items do
begin
Caption[Add(''),OleVariant(1)] := 'This is a bit of text associated';
h := Add('');
Caption[h,OleVariant(1)] := 'This is a bit of text associated';
CellState[h,OleVariant(0)] := 1;
Caption[Add(''),OleVariant(1)] := 'This is a bit of text associated';
end;
EndUpdate();
end
|
457
|
How can I display the caption bellow to picture
![](images/exlistq457.png)
with List1 do
begin
BeginUpdate();
ScrollBySingleLine := True;
HTMLPicture['p1'] := 'c:\exontrol\images\zipdisk.gif';
HTMLPicture['p2'] := 'c:\exontrol\images\auction.gif';
Columns.Add('Default');
with Items do
begin
h := Add('<c><img>p1</img><br><c>your caption1');
CellSingleLine[h,OleVariant(0)] := EXLISTLib_TLB.exCaptionWordWrap;
CaptionFormat[h,OleVariant(0)] := EXLISTLib_TLB.exHTML;
h := Add('<c><img>p2</img><br><c>your caption2');
CellSingleLine[h,OleVariant(0)] := EXLISTLib_TLB.exCaptionWordWrap;
CaptionFormat[h,OleVariant(0)] := EXLISTLib_TLB.exHTML;
end;
EndUpdate();
end
|
456
|
How can I add a vertical padding
![](images/exlistq456.png)
with List1 do
begin
BeginUpdate();
DrawGridLines := EXLISTLib_TLB.exAllLines;
with (IUnknown(Columns.Add('Padding')) as EXLISTLib_TLB.Column) do
begin
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Def[EXLISTLib_TLB.exCellSingleLine] := OleVariant(False);
Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(6);
Def[EXLISTLib_TLB.exCellPaddingRight] := OleVariant(6);
Def[EXLISTLib_TLB.exCellPaddingTop] := OleVariant(6);
Def[EXLISTLib_TLB.exCellPaddingBottom] := OleVariant(6);
end;
with Items do
begin
Add('padding');
Add('padding');
end;
EndUpdate();
end
|
455
|
How do you embed HTML options into the anchor click string
![](images/exlistq455.png)
// AnchorClick event - Occurs when an anchor element is clicked.
procedure TForm1.List1AnchorClick(ASender: TObject; AnchorID : WideString;Options : WideString);
begin
with List1 do
begin
OutputDebugString( AnchorID );
OutputDebugString( Options );
end
end;
with List1 do
begin
BeginUpdate();
with Columns do
begin
(IUnknown(Add('Car')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
end;
with Items do
begin
Add('<a mazda_1;options for 1>Mazda <b>1</b></a>');
Add('<a mazda_2;options for 2>Mazda <b>2</b></a>');
Add('<a mazda_3;options for 3a>Mazda <b>3.a</b></a>');
Add('<a mazda_3;options for 3b>Mazda <b>3.b</b></a>');
end;
EndUpdate();
end
|
454
|
I have the rows with different background color, and when I select the item it takes the color of the SelBackColor, and therefore is no longer visible behind the color. Is there any option to make the item's color being visible (method 3)
![](images/exlistq454.png)
with List1 do
begin
BeginUpdate();
VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAEGg4BVEIQAAYAQGKIYBkAKBQAGaAoDDMOQwQwAAxjGKEEwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQCWIAzATGYBRfIUEgjBM6ExwG78eg' +
'BHp/ZpkACIJJAaRjHQdJxGKKMQB9DIhCZpeKhWgkKIJBzOEyBRC4ERBGqNGrsIgLEqWZpnWhaNpWXYTLyBN64LhuK46g53O6wLxvK6hEr2dJ/YBcIAOfghf4NQ7EMRxL' +
'C8Mw3BDvYDkOAABAIgI=');
SelBackColor := $1fffffe;
ShowFocusRect := False;
Columns.Add('Items');
with Items do
begin
ItemBackColor[Add('red')] := $ff;
ItemBackColor[Add('blue')] := $ff0000;
ItemBackColor[Add('green')] := $ff00;
end;
EndUpdate();
end
|
453
|
I have the rows with different background color, and when I select the item it takes the color of the SelBackColor, and therefore is no longer visible behind the color. Is there any option to make the item's color being visible (method 2)
![](images/exlistq453.png)
with List1 do
begin
BeginUpdate();
SelBackMode := EXLISTLib_TLB.exTransparent;
ShowFocusRect := False;
Columns.Add('Items');
with Items do
begin
ItemBackColor[Add('red')] := $ff;
ItemBackColor[Add('blue')] := $ff0000;
ItemBackColor[Add('green')] := $ff00;
end;
EndUpdate();
end
|
452
|
I have the rows with different background color, and when I select the item it takes the color of the SelBackColor, and therefore is no longer visible behind the color. Is there any option to make the item's color being visible (method 1)
![](images/exlistq452.png)
with List1 do
begin
BeginUpdate();
SelBackColor := BackColor;
SelForeColor := ForeColor;
ShowFocusRect := True;
Columns.Add('Items');
with Items do
begin
ItemBackColor[Add('red')] := $ff;
ItemBackColor[Add('blue')] := $ff0000;
ItemBackColor[Add('green')] := $ff00;
end;
EndUpdate();
end
|
451
|
I am using the FormatColumn property, but is it also possible to have a blank field when the value is '0'. I've tried the 'leading zero' flag in the FormatColumn, but that did not work
![](images/exlistq451.png)
with List1 do
begin
(IUnknown(Columns.Add('Currency')) as EXLISTLib_TLB.Column).FormatColumn := 'int(value) != 0 ? (value format `0||3|,`) : ``';
Items.Add(OleVariant(123456789));
Items.Add(OleVariant(1234));
Items.Add(OleVariant(0));
Items.Add(OleVariant(2345));
end
|
450
|
Do you have a VB sample on how to use .FormatColumn to show this number '123456789' like '123,456,789'
![](images/exlistq450.png)
with List1 do
begin
(IUnknown(Columns.Add('Currency')) as EXLISTLib_TLB.Column).FormatColumn := 'value format `0||3|,`';
Items.Add(OleVariant(123456789));
Items.Add(OleVariant(1234));
end
|
449
|
Is it possible to change the image while do OLE Drag and Drop operations
![](images/exlistq449.png)
// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.List1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
// Data.SetData(Items.FocusItem)
end;
with List1 do
begin
Columns.Add('Default');
Items.Add('Item 1');
Items.Add('Item 2');
OLEDropMode := EXLISTLib_TLB.exOLEDropManual;
HTMLPicture['OLEDragDropImage'] := 'C:\Program Files\Exontrol\ExList\Sample\VB\UNICODE\unicode.jpg';
end
|
448
|
Is it possible to change the image while do OLE Drag and Drop operations
![](images/exlistq448.png)
// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.List1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
// Data.SetData(Items.FocusItem)
end;
with List1 do
begin
Columns.Add('Default');
Items.Add('Item 1');
Items.Add('Item 2');
OLEDropMode := EXLISTLib_TLB.exOLEDropManual;
VisualAppearance.Add(1,'C:\Program Files\Exontrol\ExG2antt\Sample\EBN\xpbselIcon.ebn');
Background[EXLISTLib_TLB.exDragDropAfter] := $1000000;
Background[EXLISTLib_TLB.exDragDropBefore] := $ffffff;
end
|
447
|
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a snapshot
with List1 do
begin
BeginUpdate();
VisualAppearance.Add(1,'c:\exontrol\images\normal.ebn');
HTMLPicture['p1'] := 'c:\exontrol\images\card.png';
HTMLPicture['p2'] := 'c:\exontrol\images\sun.png';
AutoDrag := EXLISTLib_TLB.exAutoDragCopySnapShot;
ShowFocusRect := False;
DefaultItemHeight := 26;
Columns.Add('Task');
with Items do
begin
CaptionFormat[Add('<img>p1:32</img> Group 1'),OleVariant(0)] := EXLISTLib_TLB.exHTML;
CaptionFormat[Add('<img>p2:32</img> Group 2'),OleVariant(0)] := EXLISTLib_TLB.exHTML;
end;
EndUpdate();
end
|
446
|
How can copy and paste the selection to Microsoft Word, any OLE compliant application, as a image
![](images/exlistq446.png)
with List1 do
begin
BeginUpdate();
HTMLPicture['p1'] := 'c:\exontrol\images\card.png';
HTMLPicture['p2'] := 'c:\exontrol\images\sun.png';
HeaderHeight := 24;
DefaultItemHeight := 48;
DrawGridLines := EXLISTLib_TLB.GridLinesEnum($fffffffc Or Integer(EXLISTLib_TLB.exVLines));
GridLineColor := RGB(240,240,240);
SelBackMode := EXLISTLib_TLB.exTransparent;
ColumnAutoResize := False;
ContinueColumnScroll := False;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
Columns.Item[OleVariant(0)].Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
Columns.Item[OleVariant(0)].FormatColumn := 'value + ` <img>p` + (1 + (value mod 3 ) ) + `</img>`';
Columns.Item[OleVariant(0)].Width := 112;
AutoDrag := EXLISTLib_TLB.exAutoDragCopyImage;
SingleSel := False;
with Items do
begin
SelectItem[1] := True;
SelectItem[2] := True;
SelectItem[3] := True;
end;
EndUpdate();
end
|
445
|
How can copy and paste the selection to Microsoft Word, Excel or any OLE compliant application, as a text
![](images/exlistq445.png)
with List1 do
begin
BeginUpdate();
ColumnAutoResize := False;
ContinueColumnScroll := False;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
AutoDrag := EXLISTLib_TLB.exAutoDragCopyText;
SingleSel := False;
with Items do
begin
SelectItem[1] := True;
SelectItem[3] := True;
SelectItem[4] := True;
SelectItem[5] := True;
end;
EndUpdate();
end
|
444
|
How can I change the row's position to another, by drag and drop. Is it possible
![](images/exlistq444.png)
with List1 do
begin
BeginUpdate();
AutoDrag := EXLISTLib_TLB.exAutoDragPosition;
Columns.Add('Task');
with Items do
begin
Add('Item 1');
Add('Item 2');
Add('Item 3');
Add('Item 4');
end;
EndUpdate();
end
|
443
|
Does your control support subscript or superscript, in HTML captions
![](images/exlistq443.png)
with List1 do
begin
(IUnknown(Columns.Add('Column')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
Items.Add('<sha ;;0>Event <b><font ;6><off -6>2<off 4>3<off 4>1');
end
|
442
|
Is there any property I can save and restore automatically the current setting, column position, size, and so on (2)
![](images/exlistq442.png)
with List1 do
begin
BeginUpdate();
Columns.Add('Column');
with Items do
begin
Add('Item 1');
Add('Item 2');
Add('Item 3');
end;
Layout := 'Select="0";SingleSort="C0:2";Columns=1';
EndUpdate();
end
|
441
|
Is there any property I can save and restore automatically the current setting, column position, size, and so on (1)
![](images/exlistq441.png)
with List1 do
begin
BeginUpdate();
Columns.Add('Column');
with Items do
begin
Add('Item 1');
Add('Item 2');
Add('Item 3');
end;
Layout := 'gBjAAwAAuABmABpABsAB0ABlAByhoAPIAOEPAA9gYABoABQAgUEg0XN4AOcJicKkpujMbjsfkMFk0YhkQgUOjUEl8gjcGO0ok8KMULjEaGMcj08kQAO8oMkTNEtGwAGQ' +
'Aqc7gUlhh1ABtAEsk9GpEfhElgVcsMupNlnlonlaAFcr0shUsp8QPEtnVJqJhmcIhUMh0QiU5sYAqMngUSuEMw07k8Qv0SgVRrNEuVflF2jF5x9JyNEm0TjQijemyE0j' +
'E3t+YruauoAu4Az1qj9BzRn0UzksSnAA0xDjY6qnAw8OiUQ0dwzN0zWz2t7j8/xURAGNvWH6k8xlEhklhEI0O/6QAgI=';
EndUpdate();
end
|
440
|
Is there any public method to export the selected data
![](images/exlistq440.png)
with List1 do
begin
BeginUpdate();
with Columns do
begin
Add('C1');
(IUnknown(Add('C2')) as EXLISTLib_TLB.Column).FormatColumn := '1 index `A-Z`';
(IUnknown(Add('C3')) as EXLISTLib_TLB.Column).FormatColumn := '100 index ``';
end;
with Items do
begin
Add('Item 1');
SelectItem[Add('Item 2')] := True;
Add('Item 3');
end;
EndUpdate();
OutputDebugString( 'Export CSV Selected Items Only:' );
OutputDebugString( Export('','sel') );
end
|
439
|
How can I change the visual aspect of the links in the sort bar
![](images/exlistq439.png)
with List1 do
begin
BeginUpdate();
ColumnAutoResize := False;
rs := (IUnknown(ComObj.CreateComObject(ComObj.ProgIDToClassID('ADOR.Recordset'))) as ADODB_TLB.Recordset);
with rs do
begin
Open('Orders','Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExList\Sample\Access\SAMPLE.ACCDB',3,3,Null);
end;
DataSource := (IUnknown(rs) as ADODB_TLB.Recordset);
SortBarHeight := 24;
HeaderHeight := 24;
BackColorSortBar := RGB(240,240,240);
BackColorSortBarCaption := BackColor;
VisualAppearance.Add(1,'gBFLBCJwBAEHhEJAEGg4BdsIQAAYAQGKIYBkAKBQAGaAoDDgNw0QwAAxjMK0EwsACEIrjKCRShyCYZRhGcTSBCIZBqEqSZLiEZRQiiCYsS5GQBSFDcOwHGyQYDkCQpAA' +
'WL4tCyMc7QHKAWhrEAbJjgQYJUh+TQAAZCIJRXRQAL/K6rKwnSCQIgkUBpGKdBynEYoYxAfyESCJWyIahWAwoQjUMB1HLQAAxC5kKbkIxyBABFBdVjVeBYG78Bz+ABjE' +
'ovbAMEwPBqAMwmIAZDheA4FR4AGhTXKcbxrFaXZSzKckPRoADSZq1Sg5LjDJI2ABqU6ABqNLZtJKsZS4apABrWeZ3Q7QMLdFTwA4PH6EZhxXAYbTVeaPZjQIBAgI');
SortBarVisible := True;
SortBarCaption := 'Drag a <b>column</b> header here to group by that column.';
with Columns.Item[OleVariant(1)] do
begin
Alignment := EXLISTLib_TLB.CenterAlignment;
Def[EXLISTLib_TLB.exCellBackColor] := OleVariant(15790320);
SortOrder := True;
end;
with Columns.Item[OleVariant(5)] do
begin
Alignment := EXLISTLib_TLB.CenterAlignment;
Def[EXLISTLib_TLB.exCellBackColor] := OleVariant(16119285);
SortOrder := True;
end;
Background[EXLISTLib_TLB.exSortBarLinkColor] := $1000000;
EndUpdate();
end
|
438
|
How can I have a case-insensitive filter (exFilterDoCaseSensitive flag is not set)
![](images/exlistq438.png)
with List1 do
begin
BeginUpdate();
MarkSearchColumn := False;
with Columns do
begin
with (IUnknown(Add('Car')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
FilterType := EXLISTLib_TLB.exFilter;
Filter := 'MAZDA';
end;
with (IUnknown(Add('Equipment')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
CustomFilter := 'Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*';
FilterType := EXLISTLib_TLB.exPattern;
Filter := 'AIR BAG';
end;
end;
with Items do
begin
Caption[Add('Mazda'),OleVariant(1)] := 'Air Bag';
Caption[Add('Toyota'),OleVariant(1)] := 'Air Bag,Air condition';
Caption[Add('Ford'),OleVariant(1)] := 'Air condition';
Caption[Add('Nissan'),OleVariant(1)] := 'Air Bag,ABS,ESP';
Caption[Add('Mazda'),OleVariant(1)] := 'Air Bag, ABS,ESP';
Caption[Add('Mazda'),OleVariant(1)] := 'ABS,ESP';
end;
ApplyFilter();
EndUpdate();
end
|
437
|
How can I have a case-sensitive filter
![](images/exlistq437.png)
with List1 do
begin
BeginUpdate();
MarkSearchColumn := False;
with Columns do
begin
with (IUnknown(Add('Car')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
FilterType := Integer(EXLISTLib_TLB.exFilterDoCaseSensitive) Or Integer(EXLISTLib_TLB.exFilter);
Filter := 'Mazda';
end;
with (IUnknown(Add('Equipment')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
CustomFilter := 'Air Bag||*Air Bag*|||Air condition||*Air condition*|||ABS||*ABS*|||ESP||*ESP*';
FilterType := Integer(EXLISTLib_TLB.exFilterDoCaseSensitive) Or Integer(EXLISTLib_TLB.exPattern);
Filter := 'Air Bag';
end;
end;
with Items do
begin
Caption[Add('Mazda'),OleVariant(1)] := 'Air Bag';
Caption[Add('Toyota'),OleVariant(1)] := 'Air Bag,Air condition';
Caption[Add('Ford'),OleVariant(1)] := 'Air condition';
Caption[Add('Nissan'),OleVariant(1)] := 'Air Bag,ABS,ESP';
Caption[Add('Mazda'),OleVariant(1)] := 'Air Bag, ABS,ESP';
Caption[Add('Mazda'),OleVariant(1)] := 'ABS,ESP';
end;
ApplyFilter();
EndUpdate();
end
|
436
|
I have several columns, but noticed that the filter is using AND between columns, but I need OR clause for filtering. Is it possible
![](images/exlistq436.png)
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Item')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
Filter := 'Child 1';
FilterType := EXLISTLib_TLB.exFilter;
end;
with (IUnknown(Columns.Add('Date')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
DisplayFilterDate := True;
FilterList := Integer(EXLISTLib_TLB.exShowExclude) Or Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox) Or Integer(EXLISTLib_TLB.exNoItems);
Filter := '12/28/2010';
FilterType := EXLISTLib_TLB.exDate;
end;
FilterCriteria := '%0 or %1';
Description[EXLISTLib_TLB.exFilterBarOr] := '<font ;18><fgcolor=FF0000>or</fgcolor></font>';
Description[EXLISTLib_TLB.exFilterBarAnd] := '<font ;18><fgcolor=FF0000>and</fgcolor></font>';
with Items do
begin
h := Add('Root 1');
Caption[Add('Child 1'),OleVariant(1)] := '12/27/2010';
Caption[Add('Child 2'),OleVariant(1)] := '12/28/2010';
h := Add('Root 2');
Caption[Add('Child 1'),OleVariant(1)] := '12/29/2010';
Caption[Add('Child 2'),OleVariant(1)] := '12/30/2010';
end;
ApplyFilter();
EndUpdate();
end
|
435
|
Is it possible exclude the dates being selected in the drop down filter window
![](images/exlistq435.png)
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Date')) as EXLISTLib_TLB.Column) do
begin
SortType := EXLISTLib_TLB.SortDate;
DisplayFilterButton := True;
DisplayFilterPattern := False;
DisplayFilterDate := True;
FilterList := Integer(EXLISTLib_TLB.exShowExclude) Or Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox) Or Integer(EXLISTLib_TLB.exNoItems);
end;
with Items do
begin
Add('12/27/2010');
Add('12/28/2010');
Add('12/29/2010');
Add('12/30/2010');
Add('12/31/2010');
end;
EndUpdate();
end
|
434
|
How can I display a calendar control inside the drop down filter window
![](images/exlistq434.png)
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Date')) as EXLISTLib_TLB.Column) do
begin
SortType := EXLISTLib_TLB.SortDate;
DisplayFilterButton := True;
DisplayFilterPattern := False;
DisplayFilterDate := True;
FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox) Or Integer(EXLISTLib_TLB.exNoItems);
end;
with Items do
begin
Add('12/27/2010');
Add('12/28/2010');
Add('12/29/2010');
Add('12/30/2010');
Add('12/31/2010');
end;
EndUpdate();
end
|
433
|
Is it possible to include the dates as checkb-boxes in the drop down filter window
![](images/exlistq433.png)
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Dates')) as EXLISTLib_TLB.Column) do
begin
SortType := EXLISTLib_TLB.SortDate;
DisplayFilterButton := True;
DisplayFilterPattern := True;
DisplayFilterDate := True;
FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox);
Filter := 'to 12/27/2010';
FilterType := EXLISTLib_TLB.exDate;
end;
with Items do
begin
Add('12/27/2010');
Add('12/28/2010');
Add('12/29/2010');
Add('12/30/2010');
Add('12/31/2010');
end;
ApplyFilter();
EndUpdate();
end
|
432
|
How can I filter items for dates before a specified date
![](images/exlistq432.png)
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Dates')) as EXLISTLib_TLB.Column) do
begin
SortType := EXLISTLib_TLB.SortDate;
DisplayFilterButton := True;
DisplayFilterPattern := True;
DisplayFilterDate := True;
FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exNoItems);
Filter := 'to 12/27/2010';
FilterType := EXLISTLib_TLB.exDate;
end;
with Items do
begin
Add('12/27/2010');
Add('12/28/2010');
Add('12/29/2010');
Add('12/30/2010');
Add('12/31/2010');
end;
ApplyFilter();
EndUpdate();
end
|
431
|
Is it possible to filter dates
![](images/exlistq431.png)
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Dates')) as EXLISTLib_TLB.Column) do
begin
SortType := EXLISTLib_TLB.SortDate;
DisplayFilterButton := True;
DisplayFilterPattern := True;
DisplayFilterDate := True;
FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exNoItems);
end;
with Items do
begin
Add('12/27/2010');
Add('12/28/2010');
Add('12/29/2010');
Add('12/30/2010');
Add('12/31/2010');
end;
EndUpdate();
end
|
430
|
Is it possible to change the Exclude field name to something different, in the drop down filter window
![](images/exlistq430.png)
with List1 do
begin
BeginUpdate();
Description[EXLISTLib_TLB.exFilterBarExclude] := 'Leaving out';
with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
FilterList := Integer(EXLISTLib_TLB.exShowExclude) Or Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox);
end;
with Items do
begin
h := Add('Root 1');
Add('Child 1');
Add('Child 2');
h := Add('Root 2');
Add('Child 1');
end;
EndUpdate();
end
|
429
|
How can I display the Exclude field in the drop down filter window
![](images/exlistq429.png)
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
FilterList := Integer(EXLISTLib_TLB.exShowExclude) Or Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox);
end;
with Items do
begin
h := Add('Root 1');
Add('Child 1');
Add('Child 2');
h := Add('Root 2');
Add('Child 1');
end;
EndUpdate();
end
|
428
|
Is it possible to show and ensure the focused item from the control, in the drop down filter window
![](images/exlistq428.png)
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
FilterList := Integer(EXLISTLib_TLB.exShowFocusItem) Or Integer(EXLISTLib_TLB.exShowCheckBox);
end;
with Items do
begin
h := Add('Root 1');
Add('Child 1');
Add('Child 2');
h := Add('Root 2');
Add('Child 1');
SelectItem[Add('Child 2')] := True;
end;
EndUpdate();
end
|
427
|
Is it possible to show only blanks items with no listed items from the control
![](images/exlistq427.png)
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
FilterList := Integer(EXLISTLib_TLB.exShowBlanks) Or Integer(EXLISTLib_TLB.exNoItems);
end;
with Items do
begin
h := Add('Root 1');
Add('Child 1');
Add('Child 2');
h := Add('Root 2');
Add('Child 1');
Add('Child 2');
end;
EndUpdate();
end
|
426
|
How can I include the blanks items in the drop down filter window
![](images/exlistq426.png)
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
FilterList := Integer(EXLISTLib_TLB.exShowBlanks) Or Integer(EXLISTLib_TLB.exShowCheckBox);
end;
with Items do
begin
h := Add('Root 1');
Add('Child 1');
Add('Child 2');
h := Add('Root 2');
Add('Child 1');
Add('Child 2');
end;
EndUpdate();
end
|
425
|
How can I select multiple items in the drop down filter window, using check-boxes
![](images/exlistq425.png)
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
FilterList := EXLISTLib_TLB.exShowCheckBox;
end;
with Items do
begin
h := Add('Root 1');
Add('Child 1');
Add('Child 2');
h := Add('Root 2');
Add('Child 1');
Add('Child 2');
end;
EndUpdate();
end
|
424
|
Is it possible to allow a single item being selected in the drop down filter window
![](images/exlistq424.png)
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
FilterList := EXLISTLib_TLB.exSingleSel;
end;
with Items do
begin
h := Add('Root 1');
Add('Child 1');
Add('Child 2');
h := Add('Root 2');
Add('Child 1');
Add('Child 2');
end;
EndUpdate();
end
|
423
|
How can I display no (All) item in the drop down filter window
![](images/exlistq423.png)
with List1 do
begin
BeginUpdate();
Description[EXLISTLib_TLB.exFilterBarAll] := '';
with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := True;
FilterList := EXLISTLib_TLB.exNoItems;
end;
with Items do
begin
h := Add('Root 1');
Add('Child 1');
Add('Child 2');
h := Add('Root 2');
Add('Child 1');
Add('Child 2');
end;
EndUpdate();
end
|
422
|
Is it possible to display no items in the drop down filter window, so only the pattern is visible
![](images/exlistq422.png)
with List1 do
begin
BeginUpdate();
with (IUnknown(Columns.Add('Items')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := True;
FilterList := EXLISTLib_TLB.exNoItems;
end;
with Items do
begin
h := Add('Root 1');
Add('Child 1');
Add('Child 2');
h := Add('Root 2');
Add('Child 1');
Add('Child 2');
end;
EndUpdate();
end
|
421
|
How can I sort the value gets listed in the drop down filter window
![](images/exlistq421.png)
with List1 do
begin
MarkSearchColumn := False;
Description[EXLISTLib_TLB.exFilterBarAll] := '';
Description[EXLISTLib_TLB.exFilterBarBlanks] := '';
Description[EXLISTLib_TLB.exFilterBarNonBlanks] := '';
with (IUnknown(Columns.Add('P1')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
FilterList := EXLISTLib_TLB.exSortItemsDesc;
end;
with (IUnknown(Columns.Add('P2')) as EXLISTLib_TLB.Column) do
begin
DisplayFilterButton := True;
DisplayFilterPattern := False;
FilterList := EXLISTLib_TLB.exSortItemsAsc;
end;
with Items do
begin
h := Add('Z3');
Caption[h,OleVariant(1)] := 'C';
Caption[Add('Z1'),OleVariant(1)] := 'B';
Caption[Add('Z2'),OleVariant(1)] := 'A';
end;
end
|
420
|
How can I add or change the padding (spaces) for captions in the control's header
![](images/exlistq420.png)
with List1 do
begin
BeginUpdate();
(IUnknown(Columns.Add('Padding-Left')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exHeaderPaddingLeft] := OleVariant(18);
with (IUnknown(Columns.Add('Padding-Right')) as EXLISTLib_TLB.Column) do
begin
Def[EXLISTLib_TLB.exHeaderPaddingRight] := OleVariant(18);
HeaderAlignment := EXLISTLib_TLB.RightAlignment;
end;
EndUpdate();
end
|
419
|
Do you have any plans to add cell spacing and cell padding to the cells
![](images/exlistq419.png)
with List1 do
begin
BeginUpdate();
DrawGridLines := EXLISTLib_TLB.GridLinesEnum($fffffffc Or Integer(EXLISTLib_TLB.exVLines));
with (IUnknown(Columns.Add('Padding-Left')) as EXLISTLib_TLB.Column) do
begin
Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
Def[EXLISTLib_TLB.exCellPaddingLeft] := OleVariant(18);
end;
(IUnknown(Columns.Add('No-Padding')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCellHasCheckBox] := OleVariant(True);
(IUnknown(Columns.Add('Empty')) as EXLISTLib_TLB.Column).Position := 0;
with Items do
begin
Caption[Add('Item A.1'),OleVariant(1)] := 'Item A.2';
Caption[Add('Item B.1'),OleVariant(1)] := 'Item B.2';
Caption[Add('Item C.1'),OleVariant(1)] := 'Item C.2';
end;
EndUpdate();
end
|
418
|
Is it possible display numbers in the same format no matter of regional settings in the control panel
![](images/exlistq418.png)
with List1 do
begin
BeginUpdate();
(IUnknown(Columns.Add('Def')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
with Items do
begin
h := Add(OleVariant(100000.27));
FormatCell[h,OleVariant(0)] := '(value format '''') + '' <fgcolor=808080>(default positive)''';
h := Add(OleVariant(100000.27));
FormatCell[h,OleVariant(0)] := '(value format ''2|.|3|,|1|1'')';
h := Add(OleVariant(-100000.27));
FormatCell[h,OleVariant(0)] := '(value format '''') + '' <fgcolor=808080>(default negative)''';
h := Add(OleVariant(-100000.27));
FormatCell[h,OleVariant(0)] := '(value format ''2|.|3|,|1|1'')';
end;
EndUpdate();
end
|
417
|
Is it possible to add a 0 for numbers less than 1 instead .7 to show 0.8
![](images/exlistq417.png)
with List1 do
begin
BeginUpdate();
(IUnknown(Columns.Add('Def')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
with Items do
begin
h := Add(OleVariant(0.27));
FormatCell[h,OleVariant(0)] := '(value format '''') + '' <fgcolor=808080>(default)''';
h := Add(OleVariant(0.27));
FormatCell[h,OleVariant(0)] := '(value format ''|||||0'') + '' <fgcolor=808080>(Display no leading zeros)''';
end;
EndUpdate();
end
|
416
|
How can I specify the format for negative numbers
![](images/exlistq416.png)
with List1 do
begin
BeginUpdate();
(IUnknown(Columns.Add('Def')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
with Items do
begin
h := Add(OleVariant(-100000.27));
FormatCell[h,OleVariant(0)] := '(value format '''') + '' <fgcolor=808080>(default)''';
h := Add(OleVariant(-100000.27));
FormatCell[h,OleVariant(0)] := '(value format ''||||1'') + '' <fgcolor=808080>(Negative sign, number; for example, -1.1)''';
end;
EndUpdate();
end
|
415
|
Is it possible to change the grouping character when display numbers
![](images/exlistq415.png)
with List1 do
begin
BeginUpdate();
(IUnknown(Columns.Add('Def')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
with Items do
begin
h := Add(OleVariant(100000.27));
FormatCell[h,OleVariant(0)] := '(value format '''') + '' <fgcolor=808080>(default)''';
h := Add(OleVariant(100000.27));
FormatCell[h,OleVariant(0)] := '(value format ''|||-'') + '' <fgcolor=808080>(grouping character is -)''';
end;
EndUpdate();
end
|
414
|
How can I display numbers with 2 digits in each group
![](images/exlistq414.png)
with List1 do
begin
BeginUpdate();
(IUnknown(Columns.Add('Def')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
with Items do
begin
h := Add(OleVariant(100000.27));
FormatCell[h,OleVariant(0)] := '(value format '''') + '' <fgcolor=808080>(default)''';
h := Add(OleVariant(100000.27));
FormatCell[h,OleVariant(0)] := '(value format ''||2'') + '' <fgcolor=808080>(grouping by 2 digits)''';
end;
EndUpdate();
end
|
413
|
How can I display my numbers using a different decimal separator
![](images/exlistq413.png)
with List1 do
begin
BeginUpdate();
(IUnknown(Columns.Add('Def')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
with Items do
begin
h := Add(OleVariant(100.27));
FormatCell[h,OleVariant(0)] := '(value format '''') + '' <fgcolor=808080>(default)''';
h := Add(OleVariant(100.27));
FormatCell[h,OleVariant(0)] := '(value format ''|;'') + '' <fgcolor=808080>(decimal separator is <b>;</b>)''';
end;
EndUpdate();
end
|
412
|
Is it possible to display the numbers using 3 (three) digits
![](images/exlistq412.png)
with List1 do
begin
BeginUpdate();
(IUnknown(Columns.Add('Def')) as EXLISTLib_TLB.Column).Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
with Items do
begin
h := Add(OleVariant(100.27));
FormatCell[h,OleVariant(0)] := '(value format '''') + '' <fgcolor=808080>(default)''';
h := Add(OleVariant(100.27));
FormatCell[h,OleVariant(0)] := '(value format ''3'') + '' <fgcolor=808080>(3 digits)''';
h := Add(OleVariant(100.27));
FormatCell[h,OleVariant(0)] := '(value format 2) + '' <fgcolor=808080>(2 digits)''';
h := Add(OleVariant(100.27));
FormatCell[h,OleVariant(0)] := '(value format 1) + '' <fgcolor=808080>(1 digit)''';
end;
EndUpdate();
end
|
411
|
Is it possible to format numbers
![](images/exlistq411.png)
with List1 do
begin
BeginUpdate();
MarkSearchColumn := False;
SelBackColor := BackColor;
SelForeColor := ForeColor;
ShowFocusRect := True;
with Columns do
begin
Add('Name');
with (IUnknown(Add('A')) as EXLISTLib_TLB.Column) do
begin
SortType := EXLISTLib_TLB.SortNumeric;
AllowSizing := False;
Width := 36;
FormatColumn := 'len(value) ? value + '' +''';
end;
with (IUnknown(Add('B')) as EXLISTLib_TLB.Column) do
begin
SortType := EXLISTLib_TLB.SortNumeric;
AllowSizing := False;
Width := 36;
FormatColumn := 'len(value) ? value + '' +''';
end;
with (IUnknown(Add('C')) as EXLISTLib_TLB.Column) do
begin
SortType := EXLISTLib_TLB.SortNumeric;
AllowSizing := False;
Width := 36;
FormatColumn := 'len(value) ? value + '' =''';
end;
with (IUnknown(Add('A+B+C')) as EXLISTLib_TLB.Column) do
begin
SortType := EXLISTLib_TLB.SortNumeric;
Width := 64;
ComputedField := 'dbl(%1)+dbl(%2)+dbl(%3)';
FormatColumn := 'type(value) in (0,1) ? ''null'' : ( dbl(value)<0 ? ''<fgcolor=FF0000>''+ (value format ''2|.|3|,|1'' ) : (dbl(value)>0 ? ''<fgcolor=000' +
'0FF>+''+(value format ''2|.|3|,'' ): ''0.00'') )';
Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
end;
end;
with Items do
begin
h := Add('Item');
CaptionFormat[h,OleVariant(4)] := EXLISTLib_TLB.exComputedField;
h := Add('Item 1');
Caption[h,OleVariant(1)] := OleVariant(7);
Caption[h,OleVariant(2)] := OleVariant(3);
Caption[h,OleVariant(3)] := OleVariant(1);
h := Add('Item 2');
Caption[h,OleVariant(1)] := OleVariant(-2);
Caption[h,OleVariant(2)] := OleVariant(-2);
Caption[h,OleVariant(3)] := OleVariant(-4);
h := Add('Item 3');
Caption[h,OleVariant(1)] := OleVariant(2);
Caption[h,OleVariant(2)] := OleVariant(2);
Caption[h,OleVariant(3)] := OleVariant(-4);
end;
EndUpdate();
end
|
410
|
Is it possible background color displayed when the mouse passes over an item
![](images/exlistq410.png)
with List1 do
begin
BeginUpdate();
Columns.Add('Def');
HotBackColor := RGB(0,0,128);
HotForeColor := RGB(255,255,255);
with Items do
begin
Add('Item A');
Add('Item B');
Add('Item C');
end;
EndUpdate();
end
|
409
|
Is it possible to specify the cell's value but still want to display some formatted text instead the value
![](images/exlistq409.png)
with List1 do
begin
BeginUpdate();
MarkSearchColumn := False;
with Columns do
begin
Add('Name');
with (IUnknown(Add('Values')) as EXLISTLib_TLB.Column) do
begin
SortType := EXLISTLib_TLB.SortNumeric;
AllowSizing := False;
Width := 64;
FormatColumn := '((0:=dbl(value)) < 10? ''<fgcolor=808080><font ;7>'' :''<b>'') + currency(=:0)';
Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
end;
end;
with Items do
begin
FormatCell[Add('Item A'),OleVariant(1)] := '`<none>`';
Caption[Add('Item 1'),OleVariant(1)] := OleVariant(10);
Caption[Add('Item 2'),OleVariant(1)] := OleVariant(15);
Caption[Add('Item 3'),OleVariant(1)] := OleVariant(25);
end;
EndUpdate();
end
|
408
|
I am using the FormatColumn to display the current currency, but would like hide some values. Is it possible
![](images/exlistq408.png)
with List1 do
begin
BeginUpdate();
MarkSearchColumn := False;
with Columns do
begin
Add('Name');
with (IUnknown(Add('Values')) as EXLISTLib_TLB.Column) do
begin
SortType := EXLISTLib_TLB.SortNumeric;
AllowSizing := False;
Width := 64;
FormatColumn := '((0:=dbl(value)) < 10? ''<fgcolor=808080><font ;7>'' :''<b>'') + currency(=:0)';
Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
end;
end;
with Items do
begin
FormatCell[Add('Item A'),OleVariant(1)] := ' ';
Caption[Add('Item 1'),OleVariant(1)] := OleVariant(10);
Caption[Add('Item 2'),OleVariant(1)] := OleVariant(15);
Caption[Add('Item 3'),OleVariant(1)] := OleVariant(25);
end;
EndUpdate();
end
|
407
|
I am using the FormatColumn to format my columns. Is it possible to ignore the SelForeColor, so the foreground color for selected items does not override my settings
![](images/exlistq407.png)
// SelectionChanged event - Fired after a new item is selected.
procedure TForm1.List1SelectionChanged(ASender: TObject; );
begin
with List1 do
begin
with Items do
begin
ClearItemBackColor(-1);
ItemBackColor[SelectedItem[0]] := $ffff80;
end;
end
end;
with List1 do
begin
BeginUpdate();
MarkSearchColumn := False;
SelForeColor := ForeColor;
SelBackColor := BackColor;
ShowFocusRect := False;
with Columns do
begin
with (IUnknown(Add('Format')) as EXLISTLib_TLB.Column) do
begin
FormatColumn := 'type(value) in (0,1) ? ''null'' : ( dbl(value)<0 ? ''<fgcolor=FF0000>''+ (value format ''2|.|3|,|1'' ) : (dbl(value)>0 ? ''<fgcolor=000' +
'0FF>+''+(value format ''2|.|3|,'' ): ''0.00'') )';
Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
end;
end;
with Items do
begin
Add(OleVariant(10));
Add(OleVariant(-8));
end;
EndUpdate();
end
|
406
|
Is it possible to change the height for all items at once
![](images/exlistq406.png)
with List1 do
begin
BeginUpdate();
Columns.Add('Items');
with Items do
begin
Add('Item 1');
Add('Item 2');
Add('Item 3');
Add('Item 4');
end;
EndUpdate();
DefaultItemHeight := 12;
Items.ItemHeight[-1] := 12;
end
|
405
|
How can I change the shape of the line to be shown when user drag and drop data over the control
![](images/exlistq405.png)
// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.List1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
// Data.SetData("data to be dragged")
end;
with List1 do
begin
OLEDropMode := EXLISTLib_TLB.exOLEDropManual;
VisualAppearance.Add(1,'C:\Program Files\Exontrol\ExList\Sample\VB\DragDrop\insert_bottom.ebn');
Background[EXLISTLib_TLB.exListOLEDropPosition] := $1000000;
Columns.Add('Default');
with Items do
begin
Add('Item 1');
Add('Item 2');
end;
end
|
404
|
How can I highlight the item from cursor when the user drag and drop data over the control
![](images/exlistq404.png)
// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.List1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
// Data.SetData("data to be dragged")
end;
with List1 do
begin
OLEDropMode := EXLISTLib_TLB.exOLEDropManual;
Background[EXLISTLib_TLB.exListOLEDropPosition] := $1;
Columns.Add('Default');
with Items do
begin
Add('Item 1');
Add('Item 2');
end;
end
|
403
|
How can I start drag and drop items
![](images/exlistq403.png)
// OLEStartDrag event - Occurs when the OLEDrag method is called.
procedure TForm1.List1OLEStartDrag(ASender: TObject; Data : IExDataObject;var AllowedEffects : Integer);
begin
// Data.SetData("to be carried by drag and drop")
with List1 do
begin
AllowedEffects := 1;
end
end;
with List1 do
begin
BeginUpdate();
OLEDropMode := EXLISTLib_TLB.exOLEDropManual;
Columns.Add('Default');
with Items do
begin
Add('Item 1');
Add('Item 2');
end;
EndUpdate();
end
|
402
|
When I'm trying to show string with "line break" character (vbCrLF) in a textbox, it shows 2 squares. Is there any way to hide these squares
![](images/exlistq402.png)
with List1 do
begin
with Columns do
begin
Add('Value');
with (IUnknown(Add('CellSingleLine = False')) as EXLISTLib_TLB.Column) do
begin
ComputedField := '%0';
Def[EXLISTLib_TLB.exCellSingleLine] := OleVariant(False);
end;
with (IUnknown(Add('FormatColumn/replace CRLF')) as EXLISTLib_TLB.Column) do
begin
ComputedField := '%0';
FormatColumn := 'value replace `\r\n` with ``';
end;
with (IUnknown(Add('FormatColumn/replace TAB,CRLF')) as EXLISTLib_TLB.Column) do
begin
ComputedField := '%0';
FormatColumn := '(value replace `\t` with ``) replace `\r\n` with ``';
end;
end;
with Items do
begin
Add('a\ta\r\nb\tb');
end;
end
|
401
|
The Column.Alignment property does not seem to work for cells with images in them. What can be done
![](images/exlistq401.png)
with List1 do
begin
BeginUpdate();
Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' +
'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' +
'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' +
'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
DrawGridLines := EXLISTLib_TLB.exAllLines;
HeaderHeight := 24;
DefaultItemHeight := 24;
with (IUnknown(Columns.Add('Image')) as EXLISTLib_TLB.Column) do
begin
AllowSizing := False;
Width := 32;
HTMLCaption := '<img>1</img>';
HeaderAlignment := EXLISTLib_TLB.CenterAlignment;
Alignment := EXLISTLib_TLB.CenterAlignment;
Def[EXLISTLib_TLB.exCaptionFormat] := OleVariant(1);
end;
Columns.Add('Rest');
with Items do
begin
Add('<img>1</img>');
Add('<img>2</img>');
Add('<img>3</img>');
end;
EndUpdate();
end
|